package router

import (
	"ginstudydemo.com/main/controllers"
	"ginstudydemo.com/main/middleware"
	"github.com/gin-gonic/gin"
)

// UserRouter 函数定义了 /book 路由组及其处理函数
func UserRouter(r *gin.Engine) {
	rGroup := r.Group("/users")
	{

		// 获取当前登录的用户信息
		rGroup.GET("/me", middleware.NewJwtV5().JWTAuth(), controllers.NewUserController().GetUserInfoByToken)
		// 用户分页列表
		rGroup.GET("/page", middleware.NewJwtV5().JWTAuth(), controllers.NewUserController().GetUserPageList)
		// 新增用户
		rGroup.POST("", middleware.NewJwtV5().JWTAuth(), controllers.NewUserController().AddUser)
		// 用户表单数据 (/users/{userId}/form)
		rGroup.GET("/:userId/form", middleware.NewJwtV5().JWTAuth(), controllers.NewUserController().GetUserFormInfoById)
		// 修改用户 (/users/{userId})
		rGroup.PUT("/:userId", middleware.NewJwtV5().JWTAuth(), controllers.NewUserController().EditUser)

		// 修改用户 (/users/{userId})
		rGroup.DELETE("/:ids", middleware.NewJwtV5().JWTAuth(), controllers.NewUserController().DelUsers)

		// 重置用户密码 /users/{userId}/password
		rGroup.PATCH("/:userId/password", middleware.NewJwtV5().JWTAuth(), controllers.NewUserController().ResetPassword)

		// 修改用户状态 /users/{userId}/status
		rGroup.PATCH("/:userId/status", middleware.NewJwtV5().JWTAuth(), controllers.NewUserController().EditUserStatus)

		// 获取个人中心用户信息 /users/{userId}/profile
		rGroup.GET("/:userId/profile", middleware.NewJwtV5().JWTAuth(), controllers.NewUserController().GetUserProfile)

		// 修改个人中心用户信息 /users/{userId}/profile
		rGroup.PUT("/:userId/profile", middleware.NewJwtV5().JWTAuth(), controllers.NewUserController().EditUserProfile)

		//------以下是就路由
		//批量新增
		//rGroup.POST("/batch", controllers.NewUserController().AddUsers)
		////新增&修改所有
		//rGroup.POST("/save", controllers.NewUserController().SaveUser)
		////批量删除
		//rGroup.POST("/del", controllers.NewUserController().DelUsers)

		//book.PUT("/update",controllers.NewBookController().GetList)

		// 以下是匿名函数的形式
		//book.POST("/add", func(c *gin.Context) {
		//	c.JSON(http.StatusOK, gin.H{
		//		"method": "POST",
		//	})
		//})
		//
		//book.PUT("/edit", func(c *gin.Context) {
		//	c.JSON(http.StatusOK, gin.H{
		//		"method": "PUT",
		//	})
		//})
		//
		//book.DELETE("/del", func(c *gin.Context) {
		//	c.JSON(http.StatusOK, gin.H{
		//		"method": "DELETE",
		//	})
		//})
		//
		//book.PATCH("/update", func(c *gin.Context) {
		//	c.JSON(http.StatusOK, gin.H{
		//		"method": "PATCH",
		//	})
		//})
	}

}
